package com.ucode.model.cgms.convert;

import com.ucode.model.cgms.CgmsCompanionOfflineOrderReport;
import com.ucode.model.cgms.form.CgmsCompanionOfflineOrderReportForm;
import com.ucode.model.cgms.vo.CgmsCompanionOfflineOrderReportVO;
import com.ucode.tool.base.Paginator;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface CgmsCompanionOfflineOrderReportConvert {

    CgmsCompanionOfflineOrderReportConvert INSTANCE = Mappers.getMapper(CgmsCompanionOfflineOrderReportConvert.class);

    /**
     * Form转Entity
     * @param form 表单对象
     * @return 实体对象
     */
    CgmsCompanionOfflineOrderReport convert(CgmsCompanionOfflineOrderReportForm form);

    /**
     * 更新Entity
     * @param form 表单对象
     * @param entity 实体对象
     */
    void update(CgmsCompanionOfflineOrderReportForm form, @MappingTarget CgmsCompanionOfflineOrderReport entity);

    /**
     * Entity转VO
     * @param entity 实体对象
     * @return VO对象
     */
    CgmsCompanionOfflineOrderReportVO convert(CgmsCompanionOfflineOrderReport entity);

    /**
     * Entity列表转VO列表
     * @param list 实体列表
     * @return VO列表
     */
    List<CgmsCompanionOfflineOrderReportVO> convertList(List<CgmsCompanionOfflineOrderReport> list);

    /**
     * 分页对象转换
     * @param page 实体分页对象
     * @return VO分页对象
     */
    Paginator<CgmsCompanionOfflineOrderReportVO> convertPage(Paginator<CgmsCompanionOfflineOrderReport> page);
} 